package com.qf.common.core.entity.cart;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.Date;

/**
* 购物车商品项表
* @author GaoQiangLiang
 * @TableName cart_item
*/
@TableName("cart_item")
@Data
public class CartItem {

    /**
    * 购物车项ID，主键
    */
    @NotBlank(message="[购物车项ID，主键]不能为空")
    @ApiModelProperty("购物车项ID，主键")
    @TableId(type = IdType.AUTO)
    private Integer itemId;
    /**
    * 关联购物车ID
    */
    @NotBlank(message="[关联购物车ID]不能为空")
    @ApiModelProperty("关联购物车ID")
    private Integer cartId;
    /**
    * 关联商品ID
    */
    @NotBlank(message="[关联商品ID]不能为空")
    @ApiModelProperty("关联商品ID")
    private Integer productId;
    /**
    * 商品数量
    */
    @NotBlank(message="[商品数量]不能为空")
    @ApiModelProperty("商品数量")
    private Integer quantity;
    /**
    * 加入时商品单价
    */
    @NotBlank(message="[加入时商品单价]不能为空")
    @ApiModelProperty("加入时商品单价")
    private BigDecimal price;
    /**
    * 是否选中(0-未选中 1-已选中)
    */
    @NotBlank(message="[是否选中(0-未选中 1-已选中)]不能为空")
    @ApiModelProperty("是否选中(0-未选中 1-已选中)")
    private Boolean checked;
    /**
    * 选中的商品属性(JSON格式)
    */
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("选中的商品属性(JSON格式)")
    @Length(max= 500,message="编码长度不能超过500")
    private String selectedProperties;
    /**
    * 创建时间
    */
    @NotBlank(message="[创建时间]不能为空")
    @ApiModelProperty("创建时间")
    private Date createTime;
    /**
    * 更新时间
    */
    @NotBlank(message="[更新时间]不能为空")
    @ApiModelProperty("更新时间")
    private Date updateTime;

}
